home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Taifun / Taifun 151 (1991-03-10)(Manewaldt, A.)(DE)(PD).zip / Taifun 151 (1991-03-10)(Manewaldt, A.)(DE)(PD).adf / ASM09 / ASM09.Dok < prev    next >
Text File  |  1991-01-26  |  4KB  |  157 lines

  1.  
  2. ASM09  - Ein 6809 Macroassembler
  3.  
  4. Copyright (C) 1990 by Alexander Holler
  5.                       Ifflandstr.13
  6.                       6800 Mannheim 1
  7.                       Fido 2:247/55
  8.  
  9.  
  10. Der Assembler kann fuer nicht!!!-gewerbliche Zwecke beliebig kopiert werden,
  11. unter der Bedingung, das er immer zusammen mit den Files testasm09.asm und
  12. ASM09.dok kopiert wird.
  13. Die Benutzung oder Verbreitung fuer gewerbliche Zwecke bedarf einer
  14. ausdruecklichen schriftlichen Genehmigung von mir, die unter obiger Adresse
  15. zu erhalten ist.
  16.  
  17.  
  18.  
  19. Vorab:
  20.  
  21. Dieser Macroassembler wurde fuer private Zwecke erstellt, d.h. man kann
  22. ihn nicht als komfortable und ausgereift bezeichnen.
  23. Weiterhin wurde er nicht besonders ausfuehrlich getestet, weshalb ich etwaige
  24. Fehler nicht ausschliesen kann. Nichtsdestotroz assemblierte er die von
  25. mir benutzten Files mit dem gleichen Ergebnis wie der AVMAC09 von AVOCET auf
  26. einem PC.
  27.  
  28.  
  29. Aufruf:
  30.  
  31. Der Assembler wird mit aufgerufen mit
  32.  
  33.     ASM09 quellfile[.asm]
  34.  
  35. Die Endung fuegt der Assembler, falls noetig, selbst hinzu.
  36. Als Ergebnis liefert der Assembler ein File im Motorola-S1 Format,
  37. welches jeder bessere Epromer lesen koennen muesste.
  38. Zur Zwischenspeicherung benutzt der Assembler ein File namens ASM09.zwf
  39. das nach Beendigung des Assemblierens wieder geloescht wird.
  40.  
  41.  
  42. Syntax:
  43.  
  44. Die Zeilen des Quellfiles muessen wie folgt aussehen:
  45.  
  46.     LABEL OPERANT ARGUMENT
  47.  
  48. Labels muessen immer am Anfang einer Zeile stehen, sonst haelt sie der
  49. Assembler fuer Operanten.
  50. Die Syntax der Operanten und der Argumente haelt sich an die Definitionen
  51. von Motorola.
  52. D.h. Hexzahlen werden mit '$' und Binaerzahlen mit '%' eingeleitet.
  53. Als Operationen beherrscht der Assembler +,-,*,/ und ^ (hoch).
  54. Achtung:
  55.     Bei Push und pull Befehlen verarbeitet der Assembler nur ein Argument,
  56.     d.h. anstatt   pulu a,b,x   muss   pulu a   pulu b   pulu x  geschrieben
  57.     werden.
  58.     Weiterhin wird angenommen das Direct Page Register immer auf 0 steht
  59.  
  60.  
  61.  
  62.  
  63. Folgende Pseudos stehen zur Verfuegung:
  64.  
  65. %macro, %endm, %gensym, %include, end, equ und org.
  66.  
  67.  
  68. %macro, %endm, %gensym:
  69.  
  70.     %macro leitet eine Macrodefinition ein, die mit %endm abgeschlossen sein
  71.     muss. Es koennen mehrere Argumente uebergeben werden, wobei ich mit an
  72.     die Syntax des AVMAC von AVOCET gehalten habe.
  73.     Beispiel:
  74.  
  75. ldst    %macro  a,b,c
  76.     ld&a    b
  77.     st&a    c
  78.     %endm
  79.  
  80.     Der Assembler generiert mit obiger Definition aus der Zeile
  81.  
  82.     ldst    b,#31,$e000
  83.  
  84.     folgende Zeilen
  85.  
  86.     ldb     #31
  87.     stb     $e000
  88.  
  89.     %gensym wird benutzt um lokale Labels (innerhalb eines Macros) zu
  90.     definieren.
  91.  
  92.     Beispiel:
  93.  
  94. getstr %macro a,b
  95.     %gensym string,stringe
  96.     ld&a #string
  97.     bra stringe
  98. string    db  b
  99. stringe
  100.     %endm
  101.  
  102.     Ohne die Benutzung von %gensym wuerde der Assembler bei mehrmaliger
  103.     Benutzung von getstr eine mehrmalige Definiton der Labels string und
  104.     stringe feststellen und dies mit einer Fehlermeldung quittieren.
  105.  
  106.  
  107. %include:
  108.  
  109.     Zur Einbindung anderer Files.
  110.  
  111.     Beispiel:
  112.  
  113.     %include    "def.asm"
  114.  
  115.  
  116. org,equ,end:
  117.  
  118.     Mit org wird dem Assembler mitgeteilt ab welcher Adresse er assembliert.
  119.     Fehlt diese Definition wird 0 angenommen.
  120.  
  121.     Beispiel:
  122.  
  123.     org     $1000
  124.     ...
  125.     org     $2000
  126.     ...
  127.  
  128.     equ weist einem Symbol einen Wert zu.
  129.  
  130.     Beispiel:
  131.  
  132. PROGRAMMSTART equ $100
  133.  
  134.     org PROGRAMMSTART
  135.     ...
  136.  
  137.  
  138.     END muss am Ende des Quellfiles stehen.
  139.  
  140.  
  141.  
  142. Fuer geuebte Programmierer muest diese Beschreibung reichen, andere werden
  143. diesen Assembler wahrscheinlich sowieso nicht benutzen.
  144. Im Zweifelsfall kann noch auf das File testasm09.asm das ich waehrend der
  145. Entwicklungsphase zu Testzwecken benutzte.
  146. In der momentane Version kann ASM09 noch kein Listing erzeugen, und weitere
  147. Versionen werden auf sich warten lassen (wenn ueberhaupt, denn er hat
  148. seinen Zweck erfuellt).
  149.  
  150. Falls jemand trotzdem Interesse an einer weiterentwickelten Version hat,
  151. (z.B. mit Segmentierung und Linker) kann er sich ja mit mir unter obiger
  152. Adresse in Verbindung setzen ich werde dann sehen was sich machen laesst.
  153.  
  154.  
  155. Alex Holler
  156.  
  157.